/**
 * @file SolverFun.h
 * @author shikang999@126.com
 * @brief 根据求解器类型初始化多个求解器
 * @version 0.1
 * @date 2025-06-20
 * 
 * @copyright Copyright (c) 2025
 * 
 */
#pragma once
#include "BaseSolver.h"

namespace Solver
{
class SolverFun
{
public:
    SolverFun();
    ~SolverFun();

    static std::shared_ptr<BaseSolver> getSolver(SolverType_E type);

    static vecBaseSolver_t getSolvers(const vecSolverType_t types);

private:
    static mapSolver_t getMapSolver();

    static std::shared_ptr<BaseSolver> initSolverByLG();

    static std::shared_ptr<BaseSolver> initSolverBySWO();
};
}